MySQL FOREIGN KEY Constraint

MySQL இல் FOREIGN KEY கட்டுப்பாட்டைப் பயன்படுத்தி அட்டவணைகளுக்கு இடையேயான இணைப்புகளை அழிக்கக்கூடிய செயல்களைத் தடுக்க கற்றுக்கொள்ளுங்கள்

MySQL FOREIGN KEY கட்டுப்பாடு

FOREIGN KEY கட்டுப்பாடு அட்டவணைகளுக்கு இடையேயான இணைப்புகளை அழிக்கக்கூடிய செயல்களைத் தடுக்கப் பயன்படுகிறது.

ஒரு FOREIGN KEY என்பது ஒரு அட்டவணையில் உள்ள ஒரு புலம் (அல்லது புலங்களின் தொகுப்பு), இது மற்றொரு அட்டவணையில் உள்ள PRIMARY KEY ஐக் குறிக்கிறது.

Foreign key உள்ள அட்டவணை child table என்றும், primary key உள்ள அட்டவணை referenced அல்லது parent table என்றும் அழைக்கப்படுகிறது.

பின்வரும் இரண்டு அட்டவணைகளைப் பாருங்கள்:

Persons அட்டவணை

PersonID LastName FirstName Age
1 Hansen Ola 30
2 Svendson Tove 23
3 Pettersen Kari 20

Orders அட்டவணை

OrderID OrderNumber PersonID
1 77895 3
2 44678 3
3 22456 2
4 24562 1

"Orders" அட்டவணையில் உள்ள "PersonID" நெடுவரிசை "Persons" அட்டவணையில் உள்ள "PersonID" நெடுவரிசையைக் குறிக்கிறது என்பதைக் கவனிக்கவும்.

"Persons" அட்டவணையில் உள்ள "PersonID" நெடுவரிசை "Persons" அட்டவணையில் PRIMARY KEY ஆகும்.

"Orders" அட்டவணையில் உள்ள "PersonID" நெடுவரிசை "Orders" அட்டவணையில் FOREIGN KEY ஆகும்.

💡 குறிப்பு:

FOREIGN KEY கட்டுப்பாடு parent table இல் உள்ள மதிப்புகளில் ஒன்றாக இருக்க வேண்டும் என்பதால், foreign key நெடுவரிசையில் தவறான தரவைச் செருகுவதைத் தடுக்கிறது.

CREATE TABLE இல் FOREIGN KEY

பின்வரும் SQL "Orders" அட்டவணை உருவாக்கப்படும் போது "PersonID" நெடுவரிசையில் FOREIGN KEY ஐ உருவாக்குகிறது:

CREATE TABLE Orders (
    OrderID int NOT NULL,
    OrderNumber int NOT NULL,
    PersonID int,
    PRIMARY KEY (OrderID),
    FOREIGN KEY (PersonID) REFERENCES Persons(PersonID)
);

ஒரு FOREIGN KEY கட்டுப்பாட்டிற்கு பெயரிட அனுமதிக்க, மற்றும் பல நெடுவரிசைகளில் FOREIGN KEY கட்டுப்பாட்டை வரையறுக்க, பின்வரும் SQL தொடரியலைப் பயன்படுத்தவும்:

CREATE TABLE Orders (
    OrderID int NOT NULL,
    OrderNumber int NOT NULL,
    PersonID int,
    PRIMARY KEY (OrderID),
    CONSTRAINT FK_PersonOrder FOREIGN KEY (PersonID)
    REFERENCES Persons(PersonID)
);

ALTER TABLE இல் FOREIGN KEY

அட்டவணை ஏற்கனவே உருவாக்கப்பட்ட பிறகு "PersonID" நெடுவரிசையில் FOREIGN KEY கட்டுப்பாட்டை உருவாக்க, பின்வரும் SQL ஐப் பயன்படுத்தவும்:

ALTER TABLE Orders
ADD FOREIGN KEY (PersonID) REFERENCES Persons(PersonID);

ஒரு FOREIGN KEY கட்டுப்பாட்டிற்கு பெயரிட அனுமதிக்க, மற்றும் பல நெடுவரிசைகளில் FOREIGN KEY கட்டுப்பாட்டை வரையறுக்க, பின்வரும் SQL தொடரியலைப் பயன்படுத்தவும்:

ALTER TABLE Orders
ADD CONSTRAINT FK_PersonOrder
FOREIGN KEY (PersonID) REFERENCES Persons(PersonID);

FOREIGN KEY கட்டுப்பாட்டை நீக்குதல்

ஒரு FOREIGN KEY கட்டுப்பாட்டை நீக்க, பின்வரும் SQL ஐப் பயன்படுத்தவும்:

ALTER TABLE Orders
DROP FOREIGN KEY FK_PersonOrder;

பயிற்சி

FOREIGN KEY கட்டுப்பாடு பயன்படுத்தப்படுவது:

ஒரு ஒற்றை நெடுவரிசை மதிப்புக்கும் பிற மதிப்புகளின் வரம்பிற்கும் இடையே ஒப்பீட்டைச் செய்ய
✗ தவறு! இது CHECK கட்டுப்பாட்டின் நோக்கம்
அட்டவணைகளுக்கு இடையேயான இணைப்புகளை அழிக்கக்கூடிய செயல்களைத் தடுக்க
✓ சரி! FOREIGN KEY கட்டுப்பாடு அட்டவணைகளுக்கு இடையேயான உறவுகளைப் பராமரிக்க உதவுகிறது மற்றும் parent table இல் இல்லாத மதிப்புகளை child table இல் செருகுவதைத் தடுக்கிறது
ஒரு நெடுவரிசை NULL மதிப்புகளைக் கொண்டிருக்க முடியாது என்பதை உறுதி செய்ய
✗ தவறு! இது NOT NULL கட்டுப்பாட்டின் நோக்கம்
நெடுவரிசைகளுக்கான மதிப்புகளை தானாக உருவாக்க
✗ தவறு! இது AUTO_INCREMENT அல்லது DEFAULT மதிப்புகளின் நோக்கம்